#ifndef OCL_PROGRAM_INCLUDED
#define OCL_PROGRAM_INCLUDED 1


#include "../ocl/code.h"
#include "../ocl/context.h"

extern const char ocl_options[];

typedef struct
{
	cl_program         handle;
	const ocl_context *context;
	
} ocl_program;

#define OCL_PROGRAM_INIT { NULL, NULL }

int  ocl_program_load_sources( ocl_program *program, ocl_context *context, const ocl_code *sources );
void ocl_program_quit( ocl_program *program );
int  ocl_program_compile( ocl_program *program, const char *options );
int  ocl_program_build_logs( const ocl_program *program, ocl_code *build_logs);
int  ocl_program_display_build_logs( const ocl_program *program, FILE *fp );

#endif
